package com.yuntian.service.Impl;

import com.yuntian.dto.NyuukoForm;
import com.yuntian.entity.ProductMaster;
import com.yuntian.mapper.ProductMasterMapper;
import com.yuntian.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class ProductServiceImpl implements ProductService {

    @Autowired
    private ProductMasterMapper productMasterMapper;

    @Override
    public ProductMaster getProductByCode(String code) {
        // 调用mapper查询数据库
        return productMasterMapper.selectByProductCode(code);
    }





    @Autowired
    private ProductMasterMapper productMapper;
    @Override
    public NyuukoForm queryProduct(NyuukoForm form) {
        // 步骤1：打印前端传递的商品代码（关键！确认是否有值）
        String shouhinCode = form.getShouhinCode();
        System.out.println("===== 商品検索 =====");
        System.out.println("入力された商品コード：" + (shouhinCode == null ? "null" : shouhinCode));

        // 步骤2：查询数据库
        ProductMaster product = productMapper.selectByProductCode(shouhinCode);
        System.out.println("データベース查询結果：" + (product == null ? "商品なし" :
                "商品名=" + product.getM00202() + ", 在庫数=" + product.getM00207()));

        // 步骤3：设置表单数据
        if (product != null) {
            form.setShouhinMei(product.getM00202()); // 商品名
            form.setZayikosuu(product.getM00207());  // 库存数（必须赋值）
            System.out.println("フォームに設定された在庫数：" + form.getZayikosuu());
        } else {
            form.setShouhinMei("商品が存在しません");
            form.setZayikosuu(null); // 未找到时设为null
            System.out.println("商品が見つからないため、在庫数をnullに設定");
        }
        return form;
    }

    @Override
    public NyuukoForm updateStock(NyuukoForm form) {
        // 1. 计算入库后库存（当前库存 + 入库数量）
        Integer newStock = form.getZayikosuu() + form.getNyuukosuu();

        // 2. 更新数据库库存
        productMapper.updateStock(form.getShouhinCode(), newStock);

        // 3. 填充入库后库存到表单
        form.setNyuukoatoSuu(newStock);
        return form;
    }

    @Override
    public List<ProductMaster> getAllProducts() {
        return productMapper.selectAll();

    }


}